package com.example.mapper;

import com.example.model.SqlHistory;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;

@Mapper
public interface SqlHistoryMapper {
    void insert(SqlHistory history);
    List<SqlHistory> findByUserId(Long userId);
    List<SqlHistory> findAll();
    
    /**
     * 分页查询所有历史记录
     * @param offset 起始位置
     * @param limit 每页记录数
     * @return 历史记录列表
     */
    List<SqlHistory> findAllPaged(@Param("offset") int offset, @Param("limit") int limit);
    
    /**
     * 删除指定用户的所有历史记录
     * @param userId 用户ID
     * @return 受影响的记录数
     */
    int deleteByUserId(Long userId);
    
    int count();

    /**
     * 分页查询指定用户的历史记录
     * @param userId 用户ID
     * @param offset 起始位置
     * @param limit 每页记录数
     * @return 历史记录列表
     */
    List<SqlHistory> findByUserIdPaged(@Param("userId") Long userId, @Param("offset") int offset, @Param("limit") int limit);

    /**
     * 计算指定用户的历史记录总数
     * @param userId 用户ID
     * @return 历史记录数量
     */
    int countByUserId(@Param("userId") Long userId);
} 